home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************************
- * NCSA HDF *
- * Software Development Group *
- * National Center for Supercomputing Applications *
- * University of Illinois at Urbana-Champaign *
- * 605 E. Springfield, Champaign IL 61820 *
- * *
- * For conditions of distribution and use, see the accompanying *
- * hdf/COPYING file. *
- * *
- ****************************************************************************/
-
- /* $Id: hlimits.h,v 1.15 1998/02/02 21:44:01 smitchel Exp $ */
-
- /*+ hlimits.h
- *** This file contains all hard coded limits for the library
- *** and reserved vdata/vgroup names and classes.
- *** Also pre-defined attribute names are contained in thie file.
- + */
-
- #ifndef _HLIMITS_H
- #define _HLIMITS_H
-
- /* ------------------------- General Constants hdf.h --------------------- */
- /* tbuf used as a temporary buffer for small jobs. The size is
- preferably > 512 but MUST be > ~256. It is advised that if an
- arbitrarily large buffer (> 100 bytes) is require, dynamic space be
- used. tbuf lives in the hfile.c */
-
- #ifndef TBUF_SZ
- #if defined(macintosh) || defined(MAC) || defined(SYMANTEC_C)
- # define TBUF_SZ 256
- #else /* !macintosh */
- # define TBUF_SZ 1024
- #endif /* !macintosh */
- #endif
-
- /* File name max length (old annotations) */
- #define DF_MAXFNLEN 256
-
- /*
- * some max lengths for the Vset interface
- *
- * Except for FIELDNAMELENMAX, change these as you please, they
- * affect memory only, not the file.
- *
- */
-
- #define FIELDNAMELENMAX 128 /* fieldname : 16 chars max */
- #define VSFIELDMAX 256 /* max no of fields per vdata */
- #define VSNAMELENMAX 64 /* vdata name : 64 chars max */
- #define VGNAMELENMAX 64 /* vgroup name : 64 chars max */
-
- /*
- * default max no of objects in a vgroup
- * VGroup will grow dynamically if needed
- */
- #define MAXNVELT 64
-
- /*
- * Defaults for linked block operations with Vsets
- */
- #define VDEFAULTBLKSIZE 4096
- #define VDEFAULTNBLKS 32
-
- /* Max order of a field in a Vdata */
- #define MAX_ORDER 65535
- #define MAX_FIELD_SIZE 65535
-
-
- /* ------------------------- Constants for hfile.c --------------------- */
- /* Maximum number of files (number of slots for file records) */
- #ifndef MAX_FILE
- # define MAX_FILE 32
- #endif /* MAX_FILE */
-
- /* Maximum length of external filename(s) (used in hextelt.c) */
- #ifndef MAX_PATH_LEN
- #define MAX_PATH_LEN 1024
- #endif /* MAX_PATH_LEN */
-
- /* ndds (number of dd's in a block) default,
- so user need not specify */
- #ifndef DEF_NDDS
- # define DEF_NDDS 16
- #endif /* DEF_NDDS */
-
- /* ndds minimum, to prevent excessive overhead of very small dd-blocks */
- #ifndef MIN_NDDS
- # define MIN_NDDS 4
- #endif /* MIN_NDDS */
-
- /* largest number that will fit into 16-bit word ref variable */
- #define MAX_REF ((uint16)65535)
-
- /* length of block and number of blocks for converting 'appendable' data */
- /* elements into linked blocks (will eventually be replaced by the newer */
- /* variable-length blocks */
- #define HDF_APPENDABLE_BLOCK_LEN 4096
- #define HDF_APPENDABLE_BLOCK_NUM 16
-
- /* hashing information */
- #define HASH_MASK 0xff
- #define HASH_BLOCK_SIZE 100
-
- /* ------------------------- Constants for Vxx interface --------------------- */
-
- /*
- * Private conversion buffer stuff
- * VDATA_BUFFER_MAX is the largest buffer that can be allocated for
- * writing (haven't implemented reading yet).
- * Vtbuf is the buffer
- * Vtbufsize is the buffer size in bytes at any given time.
- * Vtbuf is increased in size as need be
- * BUG: the final Vtbuf never gets freed
- */
- #define VDATA_BUFFER_MAX 1000000
-
- /* --------------------- Constants for DFSDxx interface --------------------- */
-
- #define DFS_MAXLEN 255 /* Max length of label/unit/format strings */
- #define DFSD_MAXFILL_LEN 16 /* Current max length for fill_value space */
-
- /* ----------------- Constants for COMPRESSION interface --------------------- */
-
- /* Set the following macro to the value the highest compression scheme is */
- #define COMP_MAX_COMP 12
-
- /* ----------------- Constants for DGROUP interface --------------------- */
- #define MAX_GROUPS 8
-
- /* ----------------- Constants for HERROR interface --------------------- */
- #define FUNC_NAME_LEN 32
-
- /* error_stack is the error stack. error_top is the stack top pointer,
- and points tothe next available slot on the stack */
- #ifndef ERR_STACK_SZ
- # define ERR_STACK_SZ 10
- #endif
-
- /* max size of a stored error description */
- #ifndef ERR_STRING_SIZE
- # define ERR_STRING_SIZE 512
- #endif
-
- /* ----------------- Constants for NETCDF interface(netcdf.h) ---------------- */
- /*
- * This can be as large as the maximum number of stdio streams
- * you can have open on your system.
- */
- #define MAX_NC_OPEN MAX_FILE
-
- /*
- * These maximums are enforced by the interface, to facilitate writing
- * applications and utilities. However, nothing is statically allocated to
- * these sizes internally.
- */
- #define MAX_NC_DIMS 5000 /* max dimensions per file */
- #define MAX_NC_ATTRS 3000 /* max global or per variable attributes */
- #define MAX_NC_VARS 5000 /* max variables per file */
- #define MAX_NC_NAME 256 /* max length of a name */
- #define MAX_VAR_DIMS 32 /* max per variable dimensions */
-
- /* ----------------- Constants for MFGR interface --------------------- */
- #define MAX_GR_NAME 256 /* max length of a name */
-
- #endif /* _HLIMITS_H */
-
- /* ----------- Reserved classes and names for vdatas/vgroups -----*/
-
- /* The names of the Vgroups created by the GR interface, from mfgr.h */
- #define GR_NAME "RIG0.0" /* name of the Vgroup containing all the images */
- #define RI_NAME "RI0.0" /* name of a Vgroup containing information a
- bout one image */
- #define RIGATTRNAME "RIATTR0.0N" /* name of a Vdata containing an
- attribute */
- #define RIGATTRCLASS "RIATTR0.0C" /* class of a Vdata containing an
- attribute */
- /* Vdata and Vgroup attributes use the same class as that of SD attr,
- * _HDF_ATTRIBUTE "Attr0.0" 8/1/96 */
-
- /* classes of the Vdatas/Vgroups created by the SD interface,
- from local_nc.h */
- #define _HDF_ATTRIBUTE "Attr0.0"
- /* class of a Vdata containing SD interface attribute */
- #define _HDF_VARIABLE "Var0.0"
- /* class of a Vgroup representing an SD NDG */
- #define _HDF_DIMENSION "Dim0.0"
- /* class of a Vgroup representing an SD dimension */
- #define _HDF_UDIMENSION "UDim0.0"
- /* class of a Vgroup representing an SD UNLIMITED dimension*/
- #define DIM_VALS "DimVal0.0"
- /* class of a Vdata containing an SD dimension size and fake values */
- #define DIM_VALS01 "DimVal0.1"
- /* class of a Vdata containing an SD dimension size */
- #define _HDF_CDF "CDF0.0"
- /* DATA is defined in DTM. Change DATA to DATA0
- #define DATA "Data0.0" */
- #define DATA0 "Data0.0"
- #define ATTR_FIELD_NAME "VALUES"
-
- /* The following vdata class name is reserved by the Chunking interface.
- originally defined in 'hchunks.h'. The full class name
- currently is "_HDF_CHK_TBL_0". -GV 9/25/97 */
- #ifdef _HCHUNKS_MAIN_
- /* Private to 'hchunks.c' */
- #define _HDF_CHK_TBL_CLASS "_HDF_CHK_TBL_" /* 13 bytes */
- #define _HDF_CHK_TBL_CLASS_VER 0 /* zero version number for class */
- #endif /* _HCHUNKS_MAIN_ */
-
-
- /* ------------ pre-defined attribute names ---------------- */
- /* For MFGR interface */
- #define FILL_ATTR "FillValue"
- /* name of an attribute containing the fill value */
-
- /* For SD interface */
- #define _FillValue "_FillValue"
- /* name of an attribute to set fill value for an SDS */
- #define _HDF_LongName "long_name" /* data/dimension label string */
- #define _HDF_Units "units" /* data/dimension unit string */
- #define _HDF_Format "format" /* data/dimension format string */
- #define _HDF_CoordSys "coordsys" /* data coordsys string */
- #define _HDF_ValidRange "valid_range" /* valid range of data values */
- #define _HDF_ScaleFactor "scale_factor" /* data calibration factor */
- #define _HDF_ScaleFactorErr "scale_factor_err" /* data calibration factor error */
- #define _HDF_AddOffset "add_offset" /* calibration offset */
- #define _HDF_AddOffsetErr "add_offset_err" /* calibration offset error */
- #define _HDF_CalibratedNt "calibrated_nt" /* data type of uncalibrated data */
- #define _HDF_ValidMax "valid_max"
- #define _HDF_ValidMin "valid_min"
- #define _HDF_Remarks "remarks" /* annotation, by DFAN */
- #define _HDF_AnnoLabel "anno_label" /* annotation label, by DFAN */
-